#ifndef __DICTPRODUCER_HPP__
#define __DICTPRODUCER_HPP__

#include <string>
#include <vector>
#include <map>
#include <set>
#include <unordered_set>
#include <memory>

using std::string;
using std::vector;
using std::map;
using std::set;
using std::unordered_set;
using std::pair;
using std::shared_ptr;

class SplitTool;

class DictProducer
{
public:
    DictProducer(){}
    ~DictProducer(){}

    void getFile(){}
    void buildEnDict();//英文词典库
    void buildCnDict();//中文词典库
    void createEnIndex(const string & word,int x);//英文索引库
    void createCnIndex(const string &, int);//中文索引库
    void readEnStop(const string &);//将英文停用词读入内存(容器)
    void enStore(const string &, const string &);
    void chStore(const string &, const string &);
    void preProcessLine(string &line);

private:
    vector<string> _files;
    map<string,int> _dict;//单词+词频
    map<char,set<int>> _index;//单词+行号
    map<string,set<int>> _chIndex;//单词+行号
    unordered_set<string> _stop;
    SplitTool * _cuttor;
};
 

#endif
